﻿//-----------------------------------------------------------------------
// <copyright file="ColorHSL.cs" company="cx studio">
//     Copyright (c) cx studio. All rights reserved.
// </copyright>
// <author>Xi Chen</author>
//-----------------------------------------------------------------------
namespace CentralFoveaLib.ColorProcess
{
    /// <summary>
    /// The color wrapper
    /// </summary>
    public class ColorHSL
    {
        /// <summary>
        /// Initializes a new instance of the <see cref="ColorHSL"/> class by h,s,l.
        /// </summary>
        /// <param name="h">The Hub</param>
        /// <param name="s">This is lightness.</param>
        /// <param name="l">The Saturation.</param>
        public ColorHSL(double h, double s, double l)
        {
            this.H = h;
            this.S = s;
            this.L = l;
        }

        /// <summary>
        /// Initializes a new instance of the <see cref="ColorHSL"/> class.
        /// </summary>
        public ColorHSL()
            : this(1, 1, 1)
        {
        }

        /// <summary>
        /// Gets or sets Hub.This is Hub.The "attribute of a visual sensation according to which an area appears to be similar to one of the perceived colors: red, yellow, green, and blue, or to a combination of two of them".
        /// </summary>
        public double H
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets lightness.This is lightness.The "brightness relative to the brightness of a similarly illuminated white".
        /// </summary>
        public double L
        {
            get;
            set;
        }

        /// <summary>
        /// Gets or sets saturation.The Saturation. The "colorfulness of a stimulus relative to its own brightness".
        /// </summary>
        public double S
        {
            get;
            set;
        }
    }
}
